fichier d'émulation pour le script Mobile Alerts v3.1

Cet exemple, sur un script un peu complexe, est la pour montrer la capacité des fonctions d'émulation à pratiquement tout traiter et l'intérêt d'indiquer des valeurs de test qui autrement seraient plus fastidieux à obtenir (attendre qu'une condition se réalise, etc.)

fonctions émulées

GetArg, saveVariable, loadVariable, getRooms, getValue, setValue, httpQuery

pour pouvoir tester le script, qui est censé être appelé par un périphérique, dit "appelant", il faut absolument avoir

les valeurs utilisés dans cet exemple sont donc: NB : les ID ne sont pas utilisées puisqu'elles ne servent qu'à déterminer ou extraire des données spécifiques, or ici, nous allons les indiquer dans les fonctions qui les traitent)

Ci dessous, un fichier d'émulation, déjà préconfiguré (jouez avec les données pour tests), il suffit de le coller dans le bac à sable et d'y ajouter:

Quand vous ferez "exécuter", le fichier généré est le XML qui servira a être appelé par des XPath pour tous les capteurs; Les différentes possibilités se gèrent en changeant les données de départ (temps depuis dernier appel, nom/valeur de l'appelant, etc). On peut aussi tester dans le code source HTML ce que donne le script à partir des données brutes (tests pour voir si le fichier est correctement traité).

fonctions d'émulation préremplies (sauf HTML) pour le script Mobile Alerts v3.1

<?php

// ==================================GetArg=================================
// configuration du périphérique appelant:
// Les ID ne sont pas traités, mais indiqués quand ils sont utilisés

function getArg($var) {
if ($var=="phoneid") { $return = "";}
if ($var=="cacheduration") { $return = 30;} //VAR2 : durée du cache
if ($var=="langue") { $return = "fr";} // VAR3: langue, fr ou en
if ($var=="eedomus_controller_module_id") { $return = "";}
return $return;
}

// =========================loadVariable, saveVariable======================
// les 3 variables internes prédéfinies pour test.
// les variables jamais définies ont la valeur NULL

$time_last_xml = time() - 60*31; // ici, le cache a plus de 30 minutes
$cached_xml = NULL; // ici le cache n'a pas encore été enregistré (sinon l'y mettre "XML")
$MasterID = NULL; // ici, le MasterID n'a pas encore été enregistré, sinon, mettre "")

function loadVariable($variable_name) {
if ($variable_name=="time_last_xml") { global $time_last_xml; $return = $time_last_xml;}
if ($variable_name=="cached_xml") { global $cached_xml; $return = $cached_xml;}
if ($variable_name=="MasterID") { global $MasterID; $return = $MasterID;}
return $return;
}

// la sauvegarde: les mêmes variables que dans loadVariable
function saveVariable($variable_name, $variable_content) {
if ($variable_name=="cached_xml") { global $cached_xml; $cached_xml = $variable_content;}
if ($variable_name=="time_last_xml") { global $time_last_xml; $time_last_xml = $variable_content;}
if ($variable_name=="MasterID") { global $MasterID; $MasterID = $variable_content;}
}

// ==================================getRooms===============================
// ici on en indique 2, dont la pièce de l'appelant testé, voir ici
function getRooms($ID) {
$return = array([
"room_id" => "",
"room_name" => "Cuisine",
"img" => ""
],[
"room_id" => "",
"room_name" => "Salon",
"img" => ""
]);
return $return;
}

// ==================================getValue===============================
// ici les 2 caractéristiques utilisées de l'appelant : son nom (long=nom+pièce) et sa valeur
// ici, sa valeur commence par "dernier appel": c'est le Master
function getValue($ID,$value_text) {
$tableau = array(
"full_name" => "Thermomètre Salon Salon",
"value" => "dernier appel :<br>Congélateur<br>18:15:36",
"value_type" => "",
"change" => "",
"pending_action" => "",
"unit" => "",
"icon" => ""
);
if ($value_text) {$texte = array(
"value_text" => ""
);
$tableau = array_merge ($tableau, $texte);
}
$return = $tableau;
return $return;
}

// ==================================setValue===============================
// juste un contrôle de ce qui doit être envoyé à un périphérique
function setValue($ID, $value) {
echo "\n=====contrôle débogage======\n"; // retour ligne et double trait pour repérer le contrôle débogage
echo "Contrôle Débogage, ";
echo "le périphérique ID " . $ID;
echo " recevra la valeur: " . $value;
echo "\n====/contrôle débogage======\n"; // retour ligne et double trait pour repérer la fin de contrôle débogage
}

// ==================================httpQuery==============================
function httpQuery($url) {
// coller dans l'espace libre ci dessous le code source de la page HTML appellée
$return=<<<'pageHTML'



pageHTML;
return $return;
}


// ====================== votre script dessous ==========================